#ifndef FUNCTORLINE_H
#define FUNCTORLINE_H

#include "Functor.h"
#include <QList>

template <class T>
class FunctorLine : public Functor
{
public:
    FunctorLine(T *object);
    void appendFunction(QLine (T::*function)(Cell *,int,Cell** ));

    QLine operator()(Cell *pCell,int nAdjacentCellLineAddedCount, Cell **pNextCell,int indFunction);

    QLine Call(Cell *pCell,int nAdjacentCellLineAddedCount, Cell **pNextCell,int indFunction);

private:
    typedef QLine (T::*Function)(Cell *,int, Cell **pNextCell );
    QList<Function> mFunctions;
    T *mObject;
};

#endif // FUNCTORLINE_H
